package com.sss.hloster05;

import java.util.Scanner;

public class Sort {
//属性
	int[] arr;
	// 行为

	// 数据初始化行为
	public void doInt() {
		Scanner sc = new Scanner(System.in);
		// 输出的长度
		int len = 0;
		do {
			System.out.println("请输入排序数组的长度：");
			len = sc.nextInt();
		} while (len <= 0);
		// 根据长度初始化数组
		arr = new int[len];
		// 扩展作业：此处使用foreach结果会是如何？
		for (int i = 0; i < len; i++) {
			// foreach(int : arr){
			System.out.println("排序数组的[" + i + "]的值为：");
			int ival = sc.nextInt();
			// 赋值给数组的元素
			arr[i] = ival;
		}
	}

	//private void foreach(Object object) {
		// TODO Auto-generated method stub

	//}

	// 冒泡排序行为
//冒泡算法从小算到大
	public void bubbleSort() {
		// 外层循环数
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length - 1; j++) {
				// 两两比较交换，排序规则：从小到大
				if (arr[j] < arr[j + 1]) {
					// 两个数进行交换
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
	}

	// 打印行为
	// 打印数组
	public void printArr() {
		for (int i : arr) {
			System.out.print("  " + i);
		}
		// 換行
		System.out.println();
	}

	/**
	 * 冒泡排序处理的总方法入口
	 * 
	 */
	public void doBobbeAll() {
		// 初始化数组的行为
		doInt();
		// 打印行为
		System.out.println("初始化的数组的内容为:");
		printArr();
		// 排序
		bubbleSort();
		// 打印行为
		System.out.println("冒泡排序之后数组内容：");
		printArr();

	}
}
